package com.ktg.mes.md.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;

/**
 * 销售订单产品对象 mes_scales_order_item
 *
 * @author byteco
 * @date 2022-09-02
 */
@Data
@Accessors(chain = true)
@TableName("mes_scales_order_item")
public class MesScalesOrderItem extends BaseEntity
{
    private static final long serialVersionUID = 2L;


    public static final String ColumnScalesOrderId = "scales_order_id";

    /** 销售订单产品ID */
    @TableId(value = "scales_order_item_id", type = IdType.ASSIGN_ID)
    private String scalesOrderItemId;

    /** 工单编码 */
    @Excel(name = "工单编码")
    private String scalesOrderItemCode;

    /** 状态 */
    @Excel(name = "状态")
    private String orderStatus;

    /** 产品ID */
    @Excel(name = "产品ID")
    private String productId;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productCode;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String productSpc;


    /**粘度*/
    @Excel(name = "粘度", width = 15)
    @ApiModelProperty(value = "粘度")
    private String viscosity;

    @Excel(name = "包装规格", width = 15)
    @ApiModelProperty(value = "包装规格")
    private String packingType;


    /** 单位 */
    @Excel(name = "单位")
    private String unitOfMeasure;

    /**
     * 是否有标签
     */
    @Excel(name = "是否有标签")
    private String tag;


    /** 生产数量 */
    @Excel(name = "生产数量")
    private BigDecimal quantity;


    /** 排产数量 */
    @Excel(name = "排产数量")
    private BigDecimal countScheduling;


    /** 完成数量 */
    @Excel(name = "完成数量")
    private BigDecimal countComplete;

    /** 生产数量 */
    @Excel(name = "生产数量")
    private BigDecimal countProduct;

    /** 剩余数量 */
    @Excel(name = "剩余数量")
    private BigDecimal countSurplus;


    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal amountMoney;

    /** 需求日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "需求日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date requestDate;

    /** 需求说明 */
    @Excel(name = "需求说明")
    private String explainDes;

    /** 销售订单id */
    @Excel(name = "销售订单id")
    private String scalesOrderId;

    /** 单据状态 */
    @Excel(name = "单据状态")
    private String status;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private String attr1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private String attr2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    private Long attr3;

    /** 预留字段4 */
    @Excel(name = "预留字段4")
    private Long attr4;


    /** 客户ID */
    @Excel(name = "客户ID")
    private String clientId;


    /** 客户编码 */
    @Excel(name = "客户编码")
    private String clientCode;


    /** 客户名称 */
    @Excel(name = "客户名称")
    private String clientName;

//    @Override
//    public String toString() {
//        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
//                .append("scalesOrderItemId", getScalesOrderItemId())
//                .append("scalesOrderItemCode", getScalesOrderItemCode())
//                .append("orderStatus", getOrderStatus())
//                .append("productId", getProductId())
//                .append("productCode", getProductCode())
//                .append("productName", getProductName())
//                .append("productSpc", getProductSpc())
//                .append("unitOfMeasure", getUnitOfMeasure())
//                .append("quantity", getQuantity())
//                .append("amountMoney", getAmountMoney())
//                .append("requestDate", getRequestDate())
//                .append("explainDes", getExplainDes())
//                .append("remark", getRemark())
//                .append("scalesOrderId", getScalesOrderId())
//                .append("status", getStatus())
//                .append("attr1", getAttr1())
//                .append("attr2", getAttr2())
//                .append("attr3", getAttr3())
//                .append("attr4", getAttr4())
//                .append("createBy", getCreateBy())
//                .append("createTime", getCreateTime())
//                .append("updateBy", getUpdateBy())
//                .append("updateTime", getUpdateTime())
//                .append("clientId", getClientId())
//                .append("clientCode", getClientCode())
//                .append("clientName", getClientName())
//                .toString();
//    }
}
